Field of the Invention
This invention relates generally to the field of computer processors. More particularly, the invention relates to an apparatus and method for optimized ray tracing.
Description of the Related Art
Ray tracing is a rendering technique that can generate photo-realistic images. It works by shooting rays through a scene and computing shading at intersected points, and accumulating values for pixels. In a sense, one can say that ray tracing simulates the interaction of photons with materials and geometry.
In a heterogeneous system, consisting of, for example, a CPU with several cores and a graphics processor, one wants exploit all the resources in the best possible way in order to get the best possible performance. Some systems have split the tasks so that ray tracing (traversal of spatial data structure and intersection testing) is done on the graphics processor, while shading is done on the CPU cores, or vice versa. It is important to reduce the communication between two compute units. A CPU core is a compute unit, for example, and an EU in the graphics processor is another type of compute unit. Some systems use shared memory for ray sharing, but the communication still takes time because new jobs are started for each stream of rays that are shared from one side to the other.